package server

import (
	"fmt"
	"os"
	"path/filepath"
	"time"
)

func F获取目录() (pwd string) {
	//pwd, _ = os.Getwd()
	pwd = V目录
	return
}

type File struct {
	Name  string
	Path  string
	Dir   string
	Isdir int
	Is    int //是否存在，如果不存在，那么去请求数据，缓存存到本地
}

func F路径列表() (paths []File) {
	pwd := F获取目录()
	paths = []File{}
	filepath.Walk(pwd, func(path string, info os.FileInfo, err error) error {
		/* fmt.Println(path)           //打印path信息
		fmt.Println(info.Name())    //打印文件或目录名
		fmt.Println(info.IsDir())   //打印文件或目录名
		fmt.Println(info.ModTime()) //打印文件或目录名 */
		isdir := 0
		if info.IsDir() {
			isdir = 1
		}
		//如果是三天内的文件，那么才同步
		if time.Now().Unix()-info.ModTime().Unix() < 3600*24*时间 {
			paths = append(paths, File{
				Name:  info.Name(),
				Path:  path,
				Isdir: isdir,
			})
		}
		return nil
	})
	return
}

func F同步到指定的目录(paths []File) {
	//判断指定目录有没有文件，如果没有
	dirs := F路径列表()
	//fmt.Println("本地的文件列表", dirs)
	for _, v := range paths {
		是否存在 := false
		for _, v1 := range dirs {
			if v.Path == v1.Path {
				是否存在 = true
			}
		}
		//如果不存在，并且为目录，那么新建
		if !是否存在 {
			if v.Isdir == 1 {
				fmt.Println("是目录不存在，给建一个目录")
				err := os.MkdirAll(v.Path, os.ModePerm)
				if err != nil {
					fmt.Println(v.Name, "err:", err.Error())
				}
			} else {
				//拉取指定文件并且保存起来
				F下载文件(v.Path)
			}
		}
	}
}

func F获取指定文件保存起来(path string) {
	fmt.Println("不存在的文件", path)

}
